【计算机】数据结构 |
您所在的位置:网站首页 › 数据结构严蔚敏 pdf › 【计算机】数据结构 |
【计算机】数据结构-严蔚敏/清华大学P7 第二章 线性表 五、其它形式的链表 1.双向链表双向链表(Double Linked List) :指的是构成链表的每个结点中设立两个指针域:一个指向其直接前趋的指针域prior,一个指向其直接后继的指针域next。这样形成的链表中有两个方向不同的链,故称为双向链表。 和单链表类似,双向链表一般增加头指针也能使双链表上的某些运算变得方便。 将头结点和尾结点链接起来也能构成循环链表,并称之为双向循环链表。 双向链表是为了克服单链表的单向性的缺陷而引入的。 1 双向链表的结点及其类型定义 双向链表的结点的类型定义如下。其结点形式如图2-7所示,带头结点的双向链表的形式如图2-8所示。 typedef struct Dulnode { ElemType data ; struct Dulnode *prior , *next ; }DulNode ; 2.循环链表循环链表(Circular Linked List):是一种头尾相接的链表。其特点是最后一个结点的指针域指向链表的头结点,整个链表的指针域链接成一个环。 从循环链表的任意一个结点出发都可以找到链表中的其它结点,使得表处理更加方便灵活。 第三章 栈和队列 3.1 栈的类型定义ADT Stack{ 数据对象:D ={ ai|ai∈ElemSet, i=1,2,…,n,n≥0 } 数据关系:R ={|ai-1,ai∈D, i=2,3,…,n } 基本操作:初始化、进栈、出栈、取栈顶元素等 } ADT Stack 3.2 栈的应用举例-----------------END----------------- |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |